using System.Windows;

namespace NavigateExample.Services.Dialog
{
    /// <summary>
    /// 对话框服务接口
    /// </summary>
    public interface IDialogService
    {
        /// <summary>
        /// 显示对话框
        /// </summary>
        /// <typeparam name="TDialogView">对话框视图类型</typeparam>
        /// <param name="parameters">对话框参数</param>
        /// <param name="callback">对话框结果回调</param>
        void ShowDialog<TDialogView>(DialogParameters parameters, Action<IDialogResult> callback) where TDialogView : Window;

        /// <summary>
        /// 显示对话框（无参数）
        /// </summary>
        /// <typeparam name="TDialogView">对话框视图类型</typeparam>
        /// <param name="callback">对话框结果回调</param>
        void ShowDialog<TDialogView>(Action<IDialogResult> callback) where TDialogView : Window;

        /// <summary>
        /// 简单显示对话框
        /// </summary>
        /// <typeparam name="TDialogView">对话框视图类型</typeparam>
        void ShowDialog<TDialogView>() where TDialogView : Window;
    }
}